/*******************************************************************************
 * Copyright (c) 2007, Geophysical Center RAS
 * Sergey Berezin, Dmitry Voitsekhovskiy
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms,
 * with or without modification, are permitted provided
 * that the following conditions are met:
 *
 * - Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 *
 * - Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 *
 * - Neither the name of the Geophysical Center RAS nor the names
 * of its contributors may be used to endorse or promote products
 * derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
 * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 ******************************************************************************/
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using DAI.ClientToolkit;

namespace DAI.ClientToolkit
{

    public partial class PerformType
    {
        public PerformType() { }
        public PerformType(string[] documentation, SessionType session, object[] activities)
        {
            this.documentationField = documentation;
            this.sessionField = session;
            this.itemsField = activities;
        }
    }

    public partial class ActivityType
    {
        public ActivityType() { }
        public ActivityType(string name)
        {
            this.nameField = name;
        }
    }

    public partial class GetGranuleActivityType
    {
        public GetGranuleActivityType() { }
        public GetGranuleActivityType(string name, object[] items)
            :
            base(name)
        {

            this.itemsField = items;
        }
    }

    public partial class GetGranuleActivityTypeValue
    {
        public GetGranuleActivityTypeValue() { }
        public GetGranuleActivityTypeValue(string name, string value)
        {
            this.nameField = name;
            this.valueField = value;
        }
    }

    public partial class GetGranuleActivityTypeRange
    {
        public GetGranuleActivityTypeRange() { }
        public GetGranuleActivityTypeRange(string name, string min, string max)
        {
            this.minField = min;
            this.maxField = max;
            this.nameField = name;
        }
    }

    public partial class GetGranuleActivityTypeOutput
    {
        public GetGranuleActivityTypeOutput() { }
        public GetGranuleActivityTypeOutput(string name)
        {
            this.name = name;
        }
    }


    public partial class GetXmlDataActivityType
    {
        public GetXmlDataActivityType() { }
        public GetXmlDataActivityType(string name, object[] items)
            :
            base(name)
        {

            this.itemsField = items;
        }
    }

    public partial class GetXmlDataActivityTypeValue
    {
        public GetXmlDataActivityTypeValue() { }
        public GetXmlDataActivityTypeValue(string name, string value)
        {
            this.nameField = name;
            this.valueField = value;
        }
    }

    public partial class GetXmlDataActivityTypeRange
    {
        public GetXmlDataActivityTypeRange() { }
        public GetXmlDataActivityTypeRange(string name, string min, string max, string step)
        {
            this.minField = min;
            this.maxField = max;
            this.nameField = name;
            this.stepField = step;
        }
    }

    public partial class GetXmlDataActivityTypeOutput
    {
        public GetXmlDataActivityTypeOutput() { }
        public GetXmlDataActivityTypeOutput(string name)
        {
            this.name = name;
        }
    }

    public partial class GetCdmDataActivityType
    {
        public GetCdmDataActivityType() { }
        public GetCdmDataActivityType(string name, object[] items)
            :
            base(name)
        {

            this.itemsField = items;
        }
    }

    public partial class GetCdmDataActivityTypeValue
    {
        public GetCdmDataActivityTypeValue() { }
        public GetCdmDataActivityTypeValue(string name, string value)
        {
            this.nameField = name;
            this.valueField = value;
        }
    }

    public partial class GetCdmDataActivityTypeRange
    {
        public GetCdmDataActivityTypeRange() { }
        public GetCdmDataActivityTypeRange(string name, string min, string max, string step)
        {
            this.minField = min;
            this.maxField = max;
            this.nameField = name;
            this.stepField = step;
        }
    }

    public partial class GetCdmDataActivityTypeOutput
    {
        public GetCdmDataActivityTypeOutput() { }
        public GetCdmDataActivityTypeOutput(string name)
        {
            this.name = name;
        }
    }

    public partial class ActivityOutputType
    {
        public ActivityOutputType() { }
        public ActivityOutputType(string name, XmlNode[] content)
        {
            this.nameField = name;
            this.anyField = content;
        }
    }

    public partial class ActivityInputType
    {
        public ActivityInputType() { }
        public ActivityInputType(string name, string[] content)
        {
            this.fromField = name;
            this.textField = content;
        }
    }

    public partial class DeliverToStreamTypeFromLocal
    {
        public DeliverToStreamTypeFromLocal() { }
        public DeliverToStreamTypeFromLocal(string name, string[] content)
            :
        base(name, content)
        { }
    }

    public partial class DeliverToStreamType
    {
        public DeliverToStreamType() { }
        public DeliverToStreamType(string name, string fromLocal)
            :
        base(name)
        {
            fromLocalField = new DeliverToStreamTypeFromLocal(fromLocal, null);
        }
    }

    public partial class GetMetaDataActivityType
    {
        public GetMetaDataActivityType() { }
        public GetMetaDataActivityType(string name, object[] items)
            :
            base(name)
        {

            this.itemsField = items;
        }
    }

    public partial class GetMetaDataActivityTypeValue
    {
        public GetMetaDataActivityTypeValue() { }
        public GetMetaDataActivityTypeValue(string name, string value)
        {
            this.nameField = name;
            this.valueField = value;
        }
    }

    public partial class GetMetaDataActivityTypeRange
    {
        public GetMetaDataActivityTypeRange() { }
        public GetMetaDataActivityTypeRange(string name, string min, string max, string step)
        {
            this.minField = min;
            this.maxField = max;
            this.nameField = name;
            this.stepField = step;
        }
    }

    public partial class GetMetaDataActivityTypeOutput
    {
        public GetMetaDataActivityTypeOutput() { }
        public GetMetaDataActivityTypeOutput(string name)
        {
            this.name = name;
        }
    }
    public partial class GZIPCompressionType
    {
        public GZIPCompressionType() { }
        public GZIPCompressionType(string name, string from, string to, GZIPCompressionTypeSettingsChecksum checksum)
        {
            this.name = name;
            GZIPCompressionTypeInput gzi = new GZIPCompressionTypeInput();
            gzi.from = from;
            this.input = gzi;
            GZIPCompressionTypeCompressedOutput gzo = new GZIPCompressionTypeCompressedOutput();
            gzo.name = to;
            this.compressedOutput = gzo;
            GZIPCompressionTypeMetadataOutput gzm = new GZIPCompressionTypeMetadataOutput();
            gzm.name = to + "Metadata";
            this.metadataOutput = gzm;
            GZIPCompressionTypeSettings gzs = new GZIPCompressionTypeSettings();
            gzs.checksumSpecified = true;
            gzs.checksum = checksum;
            this.settings = gzs;
        }
    }
}